/***************************************************************
 *Copyright(c) 2014-2015 Company By LH Unigress
 *All rights reserved.
 *文件名称：前台销售管理头文件
 *简要描述：前台销售管理，加载数据库的商品的信息，根据顾客的消费进行相应的结账操作
 *
 *当前版本：V3.0
 *作者：Kelvin Li
 *创作日期：2015/07
 *Email:creazylq@163.com
 *说明：主要用于显示顾客购买商品的细节显示，顾客购买商品后对数据库中数据进行相应的修改
******************************************************************/
#ifndef SALEWIDGET_H
#define SALEWIDGET_H

#include <QModelIndex>
#include <QWidget>

class QCursor;
class BasicDataWidget;
class SqlHelp;
class PayWidget;
class PickOneDlg;
class QSqlTableModel;

namespace Ui {
class SaleWidget;
}

class SaleWidget : public QWidget {
    Q_OBJECT

public:
    explicit SaleWidget(QWidget *parent = 0);
    ~SaleWidget();

protected:
    void timerEvent(QTimerEvent *e) override;
    void keyPressEvent(QKeyEvent *e) override;

private slots:
    void on_pickOne(const QString &goodsId);
    void on_pbnFindMmeber_clicked();
    void on_lineEdit_goodsSearch_textEdited();
    void on_pbnRemoveOne_clicked();  // 移除选中商品
    void on_pbnClear_clicked();  // 清空购物车
    void on_pbnCheck_clicked();  // 结算
    void on_modifyItem(const QModelIndex &index);  // 修改优惠数量等
    void on_ConfirmPayment(); // 确认收到钱款后，保存销售记录等

private:
    void initForm();
    void initParameters();
    void createConnection();
    void updateTableview();
    void addGoodsToSelling(const QString &goodsId);
    void increaseQuantity(const QString &goodsId); //自动增加商品数量
    void summarizeGoods(); //自动显示商品的价格

private:
    Ui::SaleWidget *ui;
    QCursor *mouseCursor;

    BasicDataWidget *m_pBasicWidget;
    PayWidget *m_pPaywidget;
    PickOneDlg *m_pPickOne;

    SqlHelp *m_psqlhelp;
    QStringList m_viewHeaderList;
    QSqlTableModel *m_tableModel;
};

#endif // SALEWIDGET_H
